public class code4 {
    public int findSubstringInWraproundString(String ss) {
        int n = ss.length();
        char[] s = ss.toCharArray();//转为数组好用下标

        int[] dp = new int[n];//dp[i]：以i位置为结尾的所有子串里面，有多少个在base中出现过

        for(int i=0;i<n;i++) dp[i] = 1;//全部初始化为最小值

        for(int i=1;i<n;i++) {
            if(s[i-1]+1==s[i]||(s[i-1]=='z'&&s[i]=='a'))
                dp[i]+=dp[i-1];
        }

        //去重
        int[] hash = new int[26];
        for(int i=0;i<n;i++) {
            hash[s[i]-'a'] = Math.max(dp[i],hash[s[i]-'a']);
        }

        int sum = 0;
        for(int x:hash) sum+=x;
        return sum;
    }
}
